When streaming data, the objective of providing high fidelity real time information must often be balanced against the need to work within technical limitations of the devices and infrastructure used in that streaming. For example, the bandwidth of the channel over which data is being streamed imposes a limit on the amount of information that the streaming data can include. Similarly, the speed with which a device is able to process data imposes a limit on the amount of data that can be streamed through that device. These limitations can become even more acute when multiple data streams have to be handled simultaneously, and when operating in a context which is subject to communication errors or other types of failures. In some contexts, these limitations can be so severe that certain types of applications, such as real time streaming of multiple video feeds over a wireless communication network, simply have not been feasible. Accordingly, there has been a need in the art for improved technology to accommodate streaming data, particularly in contexts where streaming data from multiple sources is transmitted over a failure prone communication channel and requires some level of processing for delivery.